﻿using System;
using System.Web;
using SmartSpace.Core;
using SmartSapce.ServiceLocation;

namespace SmartSpace.Silverlight.Service
{
    public class LoadModule : IHttpHandler
    {
        /// <summary>
        /// You will need to configure this handler in the web.config file of your 
        /// web and register it with IIS before being able to use it. For more information
        /// see the following link: http://go.microsoft.com/?linkid=8101007
        /// </summary>
        #region IHttpHandler Members

        public bool IsReusable
        {
            // Return false in case your Managed Handler cannot be reused for another request.
            // Usually this would be false in case you have some state information preserved per request.
            get { return true; }
        }

        public void ProcessRequest(HttpContext context)
        {
            Guid id = new Guid(context.Request.QueryString["id"]);
            ICoreService service = ServiceLocator.Get<ICoreService>();
            Module module = service.GetModule(id);
            context.Response.ContentType = "application/octet-stream";
            context.Response.Cache.SetCacheability(HttpCacheability.Public);
            context.Response.WriteFile(context.Server.MapPath("~/" + module.Package));
        }

        #endregion
    }
}
